package com.itkaien;

public class Demo01 {
    public static void main(String[] args) throws InterruptedException {


        int i = 0, j = 0, k = 0;

        i++;
        System.out.println(i);

        //iconst _0 解释 在操作数栈中压入一个0
        //istore_1 解释 将操作数栈中的0压入局部变量表索引为1的变量中
        //iload_1 解释 将局部变量表索引为1的变量中的值压入操作数栈中
        //iconst _1 解释 在操作数栈中压入一个1
        //iadd 解释 将操作数栈中的两个值相加，并将结果压入操作数栈中
        //istore_2 解释 将操作数栈中的值压入局部变量表索引为2的变量中
        //return 解释 返回

        //iinc 1 by 1 解释 将局部变量表索引为1的变量中的值加1

        j= j+1;
        System.out.println(j);

        k+= 1;

        System.out.println(k);

        while (true){
            i++;
            Thread.sleep(1000);
        }

        // dashboard -i 2000


        //类的生命周期
        //1.加载 2.连接 3.初始化 4.使用 5.卸载
        //1.加载 2.连接 2.1验证 2.2准备 2.3解析  3.初始化 4.使用 5.卸载
        //链接阶段  准备 解析 验证：确保类中不会出现任何错误，如字段类型、方法签名等；
        // 准备：为类中每个静态字段分配内存并设置默认初始值；
        // 解析：将类中常量池内的符号引用替换为直接引用
        // 一个类走到加载阶段 如果只有final 修饰的常量，那么不会进入连接阶段
        //连接阶段会创建一个类的运行时数据结构，保存类的元数据，并完成对类的验证、准备、初始化等操作
        //class.forName("com.atguigu.java.com.itkaien.Demo01");这个语句会触发类的初始化

        //类加载器
//        ClassLoader classLoader = com.itkaien.Demo01.class.getClassLoader();


        //


    }
}
